Platform Explorer / Nuxeo Platform LTS 2017 9.10

Component org.nuxeo.ecm.platform.routing.layouts

Contributions

XML Source

<?xml version="1.0"?>
<component name="org.nuxeo.ecm.platform.routing.layouts">

  <require>org.nuxeo.ecm.platform.routing.actions</require>
  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgettypes">

    <widgetType name="current_route_description">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>This widget displays the name, description, author and
            creation
            date
            of the current route started on the current
            document.
          </p>
        </description>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_description_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_show_graph">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays the graph of the current route in a
            Fancybox
            popup.
          </p>
          A field to map the id of the document representing
          the workflow
          instance is required.
        </description>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
          <fields>
            <list>false</list>
            <complex>false</complex>
            <supportedTypes>
              <type>string</type>
            </supportedTypes>
          </fields>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_show_graph_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_abandon">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays an 'Abandon' action to cancel the
            current
            route
            started on the current document.
          </p>
        </description>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_abandon_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_user_tasks">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays the user tasks of the current route on
            the
            current document. Duplicate of
            "summary_current_document_single_tasks" widget.
          </p>
        </description>
        <handlingLabels>true</handlingLabels>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <containingForm>true</containingForm>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/summary/single_tasks_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="current_route_open_tasks">
      <configuration>
        <sinceVersion>5.6</sinceVersion>
        <title>Description</title>
        <description>
          <p>
            This widget displays all the open tasks of the current
            route
            on the
            current document.
          </p>
        </description>
        <handlingLabels>true</handlingLabels>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <!-- no configurable properties -->
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/route/current_route_open_tasks_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="task_workflow_title">
      <configuration>
        <title>
          Task workflow title
        </title>
        <description>
          <p>
            Displays the name of the worklow for a task, inside a h1 tag.
          </p>
          Two fields are required:
          <ul>
            <li>A field to map the task</li>
            <li>A field to map the task name</li>
          </ul>
        </description>
        <sinceVersion>5.8</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/task/task_workflow_title_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="task_workflow_name">
      <configuration>
        <title>
          Task workflow name
        </title>
        <description>
          <p>
            Displays the name of the worklow for a task.
          </p>
          Two fields are required:
          <ul>
            <li>A field to map the task</li>
            <li>A field to map the task name</li>
          </ul>
        </description>
        <sinceVersion>5.8</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/task/task_workflow_name_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="task_layout_with_actions">
      <configuration>
        <title>Listing the layout configured on Studio for the task or
          default
          actions for non routing tasks
        </title>
        <documentation>
          Two fields are required:
          <ul>
            <li>A field to map the task</li>
            <li>A field to map the task id</li>
          </ul>
        </documentation>
        <sinceVersion>5.8</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/task/task_layout_with_actions_widget.xhtml
      </property>
    </widgetType>

  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgets">

    <widget name="current_route_description" type="current_route_description" />
    <widget name="current_route_show_graph" type="current_route_show_graph">
      <fields>
        <field>#{layoutValue.document.id}
        </field>
      </fields>
      <handlingLabels>true</handlingLabels>
    </widget>
    <widget name="current_route_abandon" type="current_route_abandon">
      <controls mode="any">
        <control name="requireSurroundingForm">true</control>
      </controls>
    </widget>
    <widget name="current_route_user_tasks" type="current_route_user_tasks">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="displayTaskAdditionalActions">true</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
        <control name="requireSurroundingForm">false</control>
      </controls>
    </widget>
    <widget name="current_route_open_tasks" type="current_route_open_tasks">
      <labels>
        <label mode="any"></label>
      </labels>
      <controls mode="any">
        <control name="handleLabels">true</control>
        <control name="requireSurroundingForm">true</control>
      </controls>
    </widget>

    <widget name="current_route_previous_tasks" type="contentViewWithForms">
      <labels>
        <label mode="any"></label>
      </labels>
      <translated>false</translated>
      <properties widgetMode="any">
        <property name="contentViewName">route_past_steps</property>
      </properties>
    </widget>

    <widget name="current_route_panel_top" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_TOP</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <widget name="current_route_panel_left" type="container">
      <properties widgetMode="any">
        <property name="hideSubLabels">true</property>
        <property name="display">block_top</property>
        <property name="ajaxPanelId">currentRoutePanelLeft</property>
      </properties>
      <subWidgetRefs>
        <widget>current_route_tasks</widget>
      </subWidgetRefs>
    </widget>

    <widget name="current_route_tasks" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_LEFT</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <widget name="current_route_panel_right" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_RIGHT</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <widget name="current_route_panel_bottom" type="documentActions">
      <labels>
        <label mode="any"></label>
      </labels>
      <properties widgetMode="any">
        <property name="category">CURRENT_ROUTE_PANEL_BOTTOM</property>
        <property name="styleClass">summaryActions</property>
        <property name="actionContextDocument">#{layout.properties.currentDocumentForRoute}</property>
      </properties>
      <controls mode="any">
        <control name="handleLabels">true</control>
      </controls>
    </widget>

    <!-- for previous tasks layout -->
    <widget name="task_title" type="text">
      <labels>
        <label mode="any">label.workflow.task.Name</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.name</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>
    <widget name="task_directive" type="text">
      <labels>
        <label mode="any">label.workflow.task.directive</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.directive</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>
    <widget name="task_assignee" type="multiplePrefixedUsersSuggestion">
      <labels>
        <label mode="any">label.document.route.content.header.actors
        </label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.actors</field>
      </fields>
    </widget>
    <widget name="task_comments" type="list">
      <labels>
        <label mode="any">label.content.header.comments</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.taskComments</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="comment" type="text">
          <fields>
            <field>text</field>
          </fields>
        </widget>
      </subWidgets>
    </widget>
    <widget name="task_start_date" type="datetime">
      <labels>
        <label mode="any">label.workflow.task.startdate</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.dublincore.created</field>
      </fields>
    </widget>
    <widget name="task_due_date" type="datetime">
      <labels>
        <label mode="any">label.workflow.task.duedate</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.task.dueDate</field>
      </fields>
    </widget>

    <!-- for "task_layout" @since 5.8, apply to an object Task -->
    <widget name="task_workflow_title" type="task_workflow_title">
      <labels>
        <label mode="any">label.route.task.workflowStep</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field></field>
        <field>name</field>
      </fields>
    </widget>
    <widget name="task_workflow_name" type="task_workflow_name">
      <labels>
        <label mode="any">label.route.task.workflowStep</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field></field>
        <field>name</field>
      </fields>
    </widget>
    <widget name="task_show_workflow_graph" type="current_route_show_graph">
      <labels>
        <label mode="any"></label>
      </labels>
      <fields>
        <field>processId</field>
      </fields>
    </widget>
    <widget name="task_actors" type="multiplePrefixedUsersSuggestion">
      <labels>
        <label mode="any">label.document.route.content.header.actors
        </label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>actors</field>
      </fields>
    </widget>
    <widget name="task_duedate" type="datetime">
      <labels>
        <label mode="any">label.workflow.task.duedate</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>dueDate</field>
      </fields>
    </widget>
    <widget name="task_simple_directive" type="text">
      <labels>
        <label mode="any">label.workflow.task.directive</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>directive</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>
    <widget name="task_delegated_users" type="multiplePrefixedUsersSuggestion">
      <labels>
        <label mode="any">label.route.task.delegated.to</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>delegatedActors</field>
      </fields>
    </widget>
    <widget name="task_layout_with_actions" type="task_layout_with_actions">
      <labels>
        <label mode="any"></label>
      </labels>
      <fields>
        <field></field>
        <field>id</field>
      </fields>
    </widget>

    <widget name="reassign_task_widget" type="action">
      <properties widgetMode="any">
        <property name="action">#{webActions.getActionForDocument("reassignTask",null,
          false)}
        </property>
        <property name="styleClass">floatL</property>
        <property name="actionStyleClass">button</property>
        <property name="actionsDisplay">buttons</property>
        <property name="addForm">true</property>
        <property name="useAjaxForm">true</property>
        <property name="ignoreTemplateProperty">true</property>
      </properties>
      <widgetModes>
        <mode value="any">#{layoutValue.isCanBeReassigned()?'edit':'hidden'}
        </mode>
      </widgetModes>
    </widget>

    <widget name="delegate_task_widget" type="action">
      <properties widgetMode="any">
        <property name="action">#{webActions.getActionForDocument("delegateTask",null,
          false)}
        </property>
        <property name="styleClass">floatL</property>
        <property name="actionStyleClass">button</property>
        <property name="actionsDisplay">buttons</property>
        <property name="addForm">true</property>
        <property name="useAjaxForm">true</property>
        <property name="ignoreTemplateProperty">true</property>
      </properties>
    </widget>

  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="layouts">

    <layout name="current_route_layout">
      <templates>
        <template mode="any">
          /layouts/layout_grid_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <properties mode="any">
            <property name="nxl_gridStyleClass_0">gridStyle12</property>
            <property name="nxl_gridStyleClass_1">gridStyle7</property>
            <property name="nxl_gridStyleClass_2">gridStyle5</property>
            <property name="nxl_gridStyleClass_3">gridStyle12</property>
          </properties>
          <widget>current_route_panel_top</widget>
          <widget>current_route_panel_left</widget>
          <widget>current_route_panel_right</widget>
          <widget>current_route_panel_bottom</widget>
        </row>
      </rows>
    </layout>

    <!-- Route tasks content view layout -->
    <layout name="route_content_view_layout">
      <templates>
        <template mode="any">
          /layouts/layout_listing_ajax_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_title</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_assignee</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_directive</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_comments</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_start_date</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>task_due_date</widget>
        </column>
      </columns>
    </layout>

    <!-- Past routes layout -->
    <layout name="previousRoutesLayout">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>previousRoutesContentView</widget>
        </row>
      </rows>
      <widget name="previousRoutesContentView" type="contentViewWithForms">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <properties widgetMode="any">
          <property name="contentViewName">previous_routes</property>
          <property name="foldable">false</property>
        </properties>
      </widget>
    </layout>

    <layout name="graphViewLayout">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>current_route_show_graph</widget>
        </row>
      </rows>
    </layout>

    <layout name="task_additional_actions_layout">
      <templates>
        <template mode="any">
          /layouts/layout_div_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>reassign_task_widget</widget>
          <widget>delegate_task_widget</widget>
        </row>
      </rows>
    </layout>

    <layout name="task_layout">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>task_workflow_name</widget>
        </row>
        <row>
          <widget>task_actors</widget>
        </row>
        <row>
          <widget>task_delegated_users</widget>
        </row>
        <row>
          <widget>task_duedate</widget>
        </row>
        <row>
          <widget>task_simple_directive</widget>
        </row>
        <row>
          <widget>container_for_task_layout_with_actions</widget>
        </row>
      </rows>
      <widget name="container_for_task_layout_with_actions" type="container">
        <labels>
          <label mode="any"></label>
        </labels>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <properties mode="any">
          <property name="hideSubLabels">true</property>
        </properties>
        <subWidgetRefs>
          <widget>task_layout_with_actions</widget>
        </subWidgetRefs>
      </widget>
    </layout>

    <layout name="workflowTaskReassignmentLayout">
      <!--applies to a TaskInfo -->
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>task_reassignment_actors</widget>
        </row>
        <row>
          <widget>task_reassignment_comment</widget>
        </row>
      </rows>
      <widget name="task_reassignment_actors" type="multipleUsersSuggestion">
        <labels>
          <label mode="any">label.workflow.task.actors</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>actors</field>
        </fields>
        <properties mode="any">
          <property name="required">true</property>
          <property name="prefixed">true</property>
        </properties>
      </widget>
      <widget name="task_reassignment_comment" type="textarea">
        <labels>
          <label mode="any">label.workflow.task.comment</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>comment</field>
        </fields>
      </widget>
    </layout>

    <layout name="userOpenTasksLayout">
      <templates>
        <template mode="any">
          /layouts/layout_div_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>current_user_open_tasks</widget>
        </row>
      </rows>
      <widget name="current_user_open_tasks" type="contentViewWithForms">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <properties widgetMode="any">
          <property name="contentViewName">user_open_tasks</property>
        </properties>
      </widget>
    </layout>
  </extension>

  <extension target="org.nuxeo.ecm.platform.actions.ActionService"
    point="actions">

    <action id="current_route_user_tasks" type="widget" order="100">
      <category>CURRENT_ROUTE_PANEL_LEFT</category>
      <properties>
        <property name="widgetName">current_route_user_tasks</property>
      </properties>
    </action>

    <action id="current_route_open_tasks" type="widget" order="200">
      <category>CURRENT_ROUTE_PANEL_LEFT</category>
      <properties>
        <property name="widgetName">current_route_open_tasks</property>
      </properties>
    </action>

    <action id="current_route_previous_tasks" type="widget" order="300">
      <category>CURRENT_ROUTE_PANEL_LEFT</category>
      <properties>
        <property name="widgetName">current_route_previous_tasks</property>
      </properties>
    </action>

    <action id="current_route_description" type="widget" order="100">
      <category>CURRENT_ROUTE_PANEL_RIGHT</category>
      <properties>
        <property name="widgetName">current_route_description</property>
      </properties>
    </action>

    <action id="current_route_show_graph" type="widget" order="200">
      <category>CURRENT_ROUTE_PANEL_RIGHT</category>
      <properties>
        <property name="widgetName">current_route_show_graph</property>
      </properties>
    </action>

    <action id="current_route_abandon" type="widget" order="300">
      <category>CURRENT_ROUTE_PANEL_RIGHT</category>
      <properties>
        <property name="widgetName">current_route_abandon</property>
      </properties>
      <filter-id>currentUserIsWorkflowInitatior</filter-id>
    </action>

  </extension>
</component>